Moodle 1.5 については Moodle 参照。 Moodle 1.6 については Moodle 1.6 参照。 Moodle 1.7 については Moodle 1.7 参照。 Moodle 1.8 については Moodle 1.8 参照。
三重大学版が http://portal.mie-u.ac.jp/src/ あるいはその中に書いてあるSubversionレポジトリからダウンロードできる。Subversionのほうが常に新しい。
PHP と,MySQL または PostgreSQL が必要。 以下では Linux + Apache + MySQL + PHP の環境でインストール。 CentOS 4.xやVine Linux 4.xで利用実績あり。
CentOS 4.xについては,httpd,php,mysql,php-mysql,gd,php-gd,php-mbstring がなければ yum install で入れておく。
OSのインストールの際にファイアウォールとSELinuxがデフォルトでオンになっていることがあるが,これはオフにしておかないと後で面倒なことになる。ファイアウォールは iptables デーモンを切ればよい。SELinux は setenforce 0 でとりあえず切れる。ずっと切るには /etc/selinux/config に SELINUX=disabled と書き込む。
DirectoryIndex に index.php が含まれることを確認。
Apache 2.x の場合,httpd.conf に必ず AcceptPathInfo on を入れる。
MySQL 4.1.16以上が必要。
次のようにしてデータベースを作っておく(データベース名 moodle,ユーザ名 moodleuser,Webサーバのホスト名 hostname,パスワード himitsu の場合)。
mysql --default-character-set=utf8 -u root -p create database moodle default character set utf8 collate utf8_unicode_ci; grant select,insert,update,delete,create,create temporary tables,drop,index,alter on moodle.* to moodleuser@'hostname' identified by 'himitsu'; quit
Apache と MySQL が同居する場合は 'hostname' は localhost でよい。 そうでない場合は 'oku' あるいは 'oku.edu.mie-u.ac.jp' のようにする(単に 'oku' とするのは /etc/hosts に oku が oku.edu.mie-u.ac.jp より先に書いてある場合)。
php.ini は基本的にデフォルトのままでいい。日本語関係の設定をするなら次のようにする:
default_charset = UTF-8 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass
Moodle.org のサイトには次のようにすると書かれている:
magic_quotes_gpc = 1 (推奨) magic_quotes_runtime = 0 (必ず) file_uploads = 1 session.auto_start = 0 session.bug_compat_warn = 0
しかしうちはデフォルトのまま magic_quotes_gpc = off で使っている。 このほうが安全。
ファイルのアップロードの最大サイズを php.ini で指定する:
upload_max_filesize = 100M post_max_size = 100M
メモリ制限は多めに設定(少なくとも40M):
memory_limit = 128M
Moodle をダウンロードして /var/www/html 以下に展開(以下では /var/www/html/moodle)。 これは当然ながら所有者は apache 以外にして,管理人以外には書き込み権限を与えない。
データ用ディレクトリを /var/www/html の外に設定。 以下では /var/www/moodledata とする。 ここは apache が読み書きできるようにする。 アップロードされたファイルはここに入る。
http://サーバ名/moodle/ をアクセスする(http://サーバ名/moodle/install.php にリダイレクトされる)。
質問に答えていけば設定ファイル config.php が作られるが,moodle ディレクトリに apache が書き込めないので,表示された config.php をコピーしてエディタにペーストし,moodle ディレクトリに保存する。 その際,
$CFG->unicodedb = true; $CFG->unicodecleanfilename = true;
を追加する。なお,パスワードポリシーが1.9.7あたりから急に厳しくなったので,それがうざい場合は
$CFG->passwordpolicy = false;
と書いておく(このあたりのことは http://moodle.org/mod/forum/discuss.php?d=144857 参照)。 さらに,パスワードの保存方式が従来の単純なMD5からsaltを使う方式に変わったが,それに対応したくない場合
$CFG->passwordsaltmain = '...';
の行をコメントアウトする。
質問は「続く」でたくさんのページがあるが必ず最後まで答える(自動運転も可能)。 質問中でURLが http://.../moodle のようになるが最後に / を補わないこと。
途中で「「日本語(ja)」言語パックをダウンロードする」ボタンが現れるが,三重大学版はここは何もしない。 詳細設定の画面は例えば次のようにする:
lang: 日本語(ja) country: 日本 allowcoursethemes: Yes sessioncookiepath: /moodle/ ←Moodleをインストールしたパス sitemailcharset: ISO-2022-JP
あとは http://サーバ名/moodle/ をアクセスするだけ。
動作確認したら cron を設定する。 まず http://サーバ名/moodle/admin/cron.php をブラウザで見てうまく働くことを確認。 よければ一般ユーザでいいから crontab -e で次のように設定。
*/5 * * * * wget -q -O /dev/null http://サーバ名/moodle/admin/cron.php
念のためバックアップ:
mysqldump -u root -p moodle >moodle.sql
ソースを上書きし,管理者でMoodleにログインするとデータベースの更新が始まる。php.ini の max_execution_time に十分大きな値をセットしておかないと途中でタイムアウトする。
既存Moodleを残して別のMoodleに全データをインポートするには,上のようにして作ったバックアップを
mysql --default-character-set=utf8 -u root -p # データベース newmoodle を作成 use newmoodle; show tables; # データベースが空であることを確認 source moodle.sql # これでデータがコピーされる
元のMoodleで設定していた sessioncookie と sessioncookiepath を変更する必要がある場合は, 次のようにすれば強制的に変えられる:
update mdl_config set value='新しいクッキー名' where name='sessioncookie'; update mdl_config set value='/新しいパス/' where name='sessioncookiepath';